In recent years, in image rendering apparatuses using real-time 3DCG (3-dimension computer graphics), the number of polygons displayed and the representational power have been significantly improved. A “polygon” basically refers to a polygonal figure, but often refers to a triangle or a quadrangle in the domain of 3DCG. In 3DCG, the shape of an object is represented by combining a large number of polygons. As these polygons are smaller, that is, as the number of the polygons displayed is larger, a smoother and more detailed 3-dimensional image can be represented.
In image rendering apparatuses using 3DCG, generally, a GE (graphics engine) creates data for an image that is to be actually displayed on a display, based on an instruction from a CPU (central processing unit). It is the GE that creates image data for the following reason. If the CPU computes an image that changes in animation or the like and gives an instruction to the GE, then the CPU sends the GE data indicating information such as the color of each pixel of each position. Thus, the amount of data transferred is increased, so that there may be a delay in displaying the image.
Thus, the CPU gives the GE only a simple instruction, for example, to render, in red, a triangle connecting three points A, B, and C on the surface of an object. Then, the GE computes each pixel data within the triangle, and stores pixel data representing red in each pixel position in a frame memory corresponding to the internal portion of the triangle. By distributing the process between the CPU and the GE, a delay in displaying an image can be avoided to the extent possible. The triangle ABC may have a curved face. In this case, in order to achieve smooth representation, the GE may divide the given triangle into a plurality of triangles, and creates pixel data for each of the triangles. Examples of the dividing technique include a so-called subdivision surface. In the subdivision surface, an original polygon is represented in more detail using polygons created through the division.
As an example of the dividing method for dividing a polygon, Patent Document 1 has disclosed a technique for selecting interpolation points for dividing a polygon based on the shape of an original polygon. For example, the middle points of sides constituting a polygon are selected, and then the polygon is divided by line segments formed by connecting the middle points.
The GE writes pixel data of each of the divided polygons to a frame memory. A display reads out the data in the frame memory and displays an image. The GE writes pixel data to the frame memory in the unit of a predetermined number of pixels. Furthermore, the GE re-renders the image in the unit of a polygon. Thus, the GE can re-render the image by rewriting only a portion that has been changed.
Patent Document 1: Japanese Patent Application Publication No. 2001-67491